library(plotly)
library(RColorBrewer)
library(ggplot2)
head(iris)
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers')
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
## rgba --> red, green, blue, alpha
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', 
        marker=list(size=10, color='rgba(255,170,190,.9)'))
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', 
        marker=list(
            size=10, color='rgba(255,100,100,.9)',
            line = list(color='rgba(200,0,0,0.9)',width=2)
            )
        )
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
---
title: "Plotly Plots"
Error in -title : invalid argument to unary operator
library(plotly)
head(iris)
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers')
## rgba --> red, green, blue, alpha
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', 
        marker=list(size=10, color='rgba(255,170,190,.9)'))
par(mar=c(3,4,1,1))
display.brewer.all(
)

plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', color=~Species, colors='Set1')
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
col = c("red", "blue", "green")
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', color=~Species, colors=col)
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
## Now virginica->red, setosa->blue, versicolor->green
col = c("red", "blue", "green")
col = setNames(col, c("virginica", "setosa", "versicolor"))
plot_ly(data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', color=~Species, colors=col)
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
## Now virginica->red, setosa->blue, versicolor->green
col = c("red", "blue", "green")
col = setNames(col, c("virginica", "setosa", "versicolor"))
plot_ly(
        data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', 
        color=~Species, colors=col, 
        symbol=~Species, symbols=c('circle', 'x', 'pentagon')
      )
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
col = c("red", "blue", "green")
col = setNames(col, c("virginica", "setosa", "versicolor"))
plot_ly(
        data=iris, x=~Sepal.Length, y=~Petal.Length, mode='markers', marker=list(size=10),
        text=~paste("Sepal-Width : ",Sepal.Width,"Petal-Width : ",Petal.Width),
        color=~Species, colors=col, 
        symbol=~Species, symbols=c('circle', 'x', 'pentagon')
      )
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
day = c(1:30)
num = rnorm(n=30, mean=3)
df = data.frame(day, num)

head(df)

Line Plot

plot_ly(df, x=~day, y=~num, type='scatter')
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
plot_ly(df, x=~day, y=~num, type='scatter', mode='lines')
plot_ly(df, x=~day, y=~num, type='scatter', mode='lines')
plot_ly(df, x=~day, y=~num, type='scatter', mode='lines+markers', line=list(color='red', width=2))

ggplot to plotly plot

fruits = c("apple", "banana", "orange")
count_c = c(200,150,300)
count_b = c(100,250,150)

df1 = data.frame(fruits, count_c, count_b)
head(df1)

Bar-Graph

plot_ly(df1, x=~fruits, y=~count_c, type='bar')
p = plot_ly(df1, x=~fruits, y=~count_c, type='bar', name='location-1')
p%>%add_trace(y=count_b, name='location-2')

using add_trace

p = plot_ly(df1, x=~fruits, y=~count_c, type='bar', name='location-1')
p%>%add_trace(y=count_b, name='location-2')
LS0tCnRpdGxlOiAiUGxvdGx5IFBsb3RzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KbGlicmFyeShwbG90bHkpCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKYGBge3J9CmhlYWQoaXJpcykKYGBgCgoKYGBge3J9CnBsb3RfbHkoZGF0YT1pcmlzLCB4PX5TZXBhbC5MZW5ndGgsIHk9flBldGFsLkxlbmd0aCwgbW9kZT0nbWFya2VycycpCmBgYAoKCmBgYHtyfQojIyByZ2JhIC0tPiByZWQsIGdyZWVuLCBibHVlLCBhbHBoYQpwbG90X2x5KGRhdGE9aXJpcywgeD1+U2VwYWwuTGVuZ3RoLCB5PX5QZXRhbC5MZW5ndGgsIG1vZGU9J21hcmtlcnMnLCAKICAgICAgICBtYXJrZXI9bGlzdChzaXplPTEwLCBjb2xvcj0ncmdiYSgyNTUsMTcwLDE5MCwuOSknKSkKYGBgCgoKYGBge3J9CnBsb3RfbHkoZGF0YT1pcmlzLCB4PX5TZXBhbC5MZW5ndGgsIHk9flBldGFsLkxlbmd0aCwgbW9kZT0nbWFya2VycycsIAogICAgICAgIG1hcmtlcj1saXN0KAogICAgICAgICAgICBzaXplPTEwLCBjb2xvcj0ncmdiYSgyNTUsMTAwLDEwMCwuOSknLAogICAgICAgICAgICBsaW5lID0gbGlzdChjb2xvcj0ncmdiYSgyMDAsMCwwLDAuOSknLHdpZHRoPTIpCiAgICAgICAgICAgICkKICAgICAgICApCmBgYAoKYGBge3J9Ci0tLQp0aXRsZTogIlBsb3RseSBQbG90cyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQpgYGAKCmBgYHtyfQpoZWFkKGlyaXMpCmBgYAoKCmBgYHtyfQpwbG90X2x5KGRhdGE9aXJpcywgeD1+U2VwYWwuTGVuZ3RoLCB5PX5QZXRhbC5MZW5ndGgsIG1vZGU9J21hcmtlcnMnKQpgYGAKCgpgYGB7cn0KIyMgcmdiYSAtLT4gcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEKcGxvdF9seShkYXRhPWlyaXMsIHg9flNlcGFsLkxlbmd0aCwgeT1+UGV0YWwuTGVuZ3RoLCBtb2RlPSdtYXJrZXJzJywgCiAgICAgICAgbWFya2VyPWxpc3Qoc2l6ZT0xMCwgY29sb3I9J3JnYmEoMjU1LDE3MCwxOTAsLjkpJykpCmBgYAoKCmBgYHtyfQpwbG90X2x5KGRhdGE9aXJpcywgeD1+U2VwYWwuTGVuZ3RoLCB5PX5QZXRhbC5MZW5ndGgsIG1vZGU9J21hcmtlcnMnLCBjb2xvciA9IH5TcGVjaWVzKQpgYGAKCmBgYHtyfQpwYXIobWFyPWMoMyw0LDEsMSkpCmRpc3BsYXkuYnJld2VyLmFsbCgKKQpgYGAKYGBge3J9CnBsb3RfbHkoZGF0YT1pcmlzLCB4PX5TZXBhbC5MZW5ndGgsIHk9flBldGFsLkxlbmd0aCwgbW9kZT0nbWFya2VycycsIGNvbG9yPX5TcGVjaWVzLCBjb2xvcnM9J1NldDEnKQpgYGAKCmBgYHtyfQpjb2wgPSBjKCJyZWQiLCAiYmx1ZSIsICJncmVlbiIpCnBsb3RfbHkoZGF0YT1pcmlzLCB4PX5TZXBhbC5MZW5ndGgsIHk9flBldGFsLkxlbmd0aCwgbW9kZT0nbWFya2VycycsIGNvbG9yPX5TcGVjaWVzLCBjb2xvcnM9Y29sKQpgYGAKCmBgYHtyfQojIyBOb3cgdmlyZ2luaWNhLT5yZWQsIHNldG9zYS0+Ymx1ZSwgdmVyc2ljb2xvci0+Z3JlZW4KY29sID0gYygicmVkIiwgImJsdWUiLCAiZ3JlZW4iKQpjb2wgPSBzZXROYW1lcyhjb2wsIGMoInZpcmdpbmljYSIsICJzZXRvc2EiLCAidmVyc2ljb2xvciIpKQpwbG90X2x5KGRhdGE9aXJpcywgeD1+U2VwYWwuTGVuZ3RoLCB5PX5QZXRhbC5MZW5ndGgsIG1vZGU9J21hcmtlcnMnLCBjb2xvcj1+U3BlY2llcywgY29sb3JzPWNvbCkKYGBgCgpgYGB7cn0KIyMgTm93IHZpcmdpbmljYS0+cmVkLCBzZXRvc2EtPmJsdWUsIHZlcnNpY29sb3ItPmdyZWVuCmNvbCA9IGMoInJlZCIsICJibHVlIiwgImdyZWVuIikKY29sID0gc2V0TmFtZXMoY29sLCBjKCJ2aXJnaW5pY2EiLCAic2V0b3NhIiwgInZlcnNpY29sb3IiKSkKcGxvdF9seSgKICAgICAgICBkYXRhPWlyaXMsIHg9flNlcGFsLkxlbmd0aCwgeT1+UGV0YWwuTGVuZ3RoLCBtb2RlPSdtYXJrZXJzJywgCiAgICAgICAgY29sb3I9flNwZWNpZXMsIGNvbG9ycz1jb2wsIAogICAgICAgIHN5bWJvbD1+U3BlY2llcywgc3ltYm9scz1jKCdjaXJjbGUnLCAneCcsICdwZW50YWdvbicpCiAgICAgICkKYGBgCgpgYGB7cn0KY29sID0gYygicmVkIiwgImJsdWUiLCAiZ3JlZW4iKQpjb2wgPSBzZXROYW1lcyhjb2wsIGMoInZpcmdpbmljYSIsICJzZXRvc2EiLCAidmVyc2ljb2xvciIpKQpwbG90X2x5KAogICAgICAgIGRhdGE9aXJpcywgeD1+U2VwYWwuTGVuZ3RoLCB5PX5QZXRhbC5MZW5ndGgsIG1vZGU9J21hcmtlcnMnLCBtYXJrZXI9bGlzdChzaXplPTEwKSwKICAgICAgICB0ZXh0PX5wYXN0ZSgiU2VwYWwtV2lkdGggOiAiLFNlcGFsLldpZHRoLCJQZXRhbC1XaWR0aCA6ICIsUGV0YWwuV2lkdGgpLAogICAgICAgIGNvbG9yPX5TcGVjaWVzLCBjb2xvcnM9Y29sLCAKICAgICAgICBzeW1ib2w9flNwZWNpZXMsIHN5bWJvbHM9YygnY2lyY2xlJywgJ3gnLCAncGVudGFnb24nKQogICAgICApCmBgYAoKIyMgTGluZSBQbG90CmBgYHtyfQpkYXkgPSBjKDE6MzApCm51bSA9IHJub3JtKG49MzAsIG1lYW49MykKZGYgPSBkYXRhLmZyYW1lKGRheSwgbnVtKQoKaGVhZChkZikKYGBgCgpgYGB7cn0KcGxvdF9seShkZiwgeD1+ZGF5LCB5PX5udW0sIHR5cGU9J3NjYXR0ZXInKQpgYGAKCmBgYHtyfQpwbG90X2x5KGRmLCB4PX5kYXksIHk9fm51bSwgdHlwZT0nc2NhdHRlcicsIG1vZGU9J2xpbmVzJykKYGBgCgoKYGBge3J9CnBsb3RfbHkoZGYsIHg9fmRheSwgeT1+bnVtLCB0eXBlPSdzY2F0dGVyJywgbW9kZT0nbGluZXMrbWFya2VycycsIGxpbmU9bGlzdChjb2xvcj0ncmVkJywgd2lkdGg9MikpCmBgYAoKCmBgYHtyfQpgYGAKCiMjIGdncGxvdCB0byBwbG90bHkgcGxvdApgYGB7cn0KcCA9IGdncGxvdChpcmlzLCBhZXMoeD1TZXBhbC5MZW5ndGgsIHk9UGV0YWwuTGVuZ3RoKSkgKyBnZW9tX3BvaW50KCkgIyMgZ2dwbG90CmdncGxvdGx5KHApICMjIHBsb3RseSBwbG90CmBgYAoKIyMgQmFyLUdyYXBoCmBgYHtyfQpmcnVpdHMgPSBjKCJhcHBsZSIsICJiYW5hbmEiLCAib3JhbmdlIikKY291bnRfYyA9IGMoMjAwLDE1MCwzMDApCmNvdW50X2IgPSBjKDEwMCwyNTAsMTUwKQoKZGYxID0gZGF0YS5mcmFtZShmcnVpdHMsIGNvdW50X2MsIGNvdW50X2IpCmhlYWQoZGYxKQpgYGAKCmBgYHtyfQpwbG90X2x5KGRmMSwgeD1+ZnJ1aXRzLCB5PX5jb3VudF9jLCB0eXBlPSdiYXInKQpgYGAKIyMjIHVzaW5nIGFkZF90cmFjZQpgYGB7cn0KcCA9IHBsb3RfbHkoZGYxLCB4PX5mcnVpdHMsIHk9fmNvdW50X2MsIHR5cGU9J2JhcicsIG5hbWU9J2xvY2F0aW9uLTEnKQpwJT4lYWRkX3RyYWNlKHk9Y291bnRfYiwgbmFtZT0nbG9jYXRpb24tMicpCmBgYAoK